Cinematica personalizzata
Vedi il PLCopenSingle2.project
progetto di esempio e il CustomKinematics.library
libreria nella directory di installazione di CODESYS sotto ..\CODESYS SoftMotion\Examples.
Questo esempio descrive come creare una libreria con una trasformazione cinematica personalizzata (Gantry3C) e come utilizzare questa libreria in un progetto per controllare il robot.
La trasformazione cinematica 'Gantry3C' consiste di 3 assi lineari (X, Y e Z) che portano una testa utensile. La testa dell'utensile è costituita da un asse supplementare che porta un utensile montato. La testa dell'utensile può essere ruotata attorno all'asse Z.

1. Crea un nuovo progetto di libreria
Crea un nuovo progetto con il Libreria vuota modello.

2. Aggiungi un gestore di libreria.
Aggiungi un Gestore della Libreria al file POU visualizzazione. Aggiungi il SM3_Transformation
, SM3_Math
, E SM3_Error
biblioteche al Gestore della Biblioteca.
3. Creazione del blocco funzione Gantry3C
Questo blocco funzione implementa le interfacce MC_KIN_REF_SM3
e ISMKinematicsWithInfo2
dalla biblioteca SM3_Transformation
. È possibile definire un offset come input per ciascun asse. Questo offset viene sottratto prima della trasformazione diretta e aggiunto dopo la trasformazione inversa.

Esempio di Gantry3C
con due cinematiche disaccoppiate e KinCoupled
:
FUNCTION_BLOCK Custom_Kin_Gantry3 IMPLEMENTS ISMPositionKinematics FUNCTION_BLOCK Custom_Kin_CAxis IMPLEMENTS ISMOrientationKinematics FUNCTION_BLOCK Custom_Kin_Gantry3C EXTENDS Kin_Coupled
Fornire i blocchi funzione Custom_Kin_Gantry3
e Custom_Kin_CAxis
come ingressi per il blocco funzione Kin_Coupled
durante l'inizializzazione. Ora Custom_Kin_Gantry3C
diventa una cinematica accoppiata che combina la cinematica di posizione e di orientamento.
4. Implementazione dei metodi dell'interfaccia MC_KIN_REF_SM3 e della proprietà NumAxes4
AxesToCartesian
: Cinematica in avanti: Calcolo della posizione e dell'orientamento dai valori degli assi.
CartesianToAxes
: Cinematica inversa: Calcolo dei valori degli assi dalla posizione e dall'orientamento.
NumAxes
: Numero di assi della cinematica



5. Implementazione dei metodi delle interfacce ISMKinematicsWithInfo2 e ISMKinematicsWithInfo
GetAxisProperties
: Proprietà, come il tipo di asse. I limiti per ogni asse possono essere definiti.
GetKinematicsName
: Nome della cinematica
IsSingularity
: Può essere ignorato per questa cinematica


6. Specificare le informazioni sul progetto.

7. Controllare la libreria per errori del compilatore.
Per controllare la libreria, fare clic su Costruire → Controlla tutti gli oggetti del pool.
8. Creare la descrizione nel configuratore del gruppo di assi.
Quando il POU ha l'attributo sm_kin_libdoc
, il commento specificato nel blocco funzione viene utilizzato nel configuratore del gruppo di assi come descrizione della cinematica. A tale scopo viene utilizzata la formattazione del testo ristrutturata.



Includi l'attributo
sm_kin_libdoc
come mostrato nell'immagine sopra.Includi le proprietà del progetto richieste DocFormat e DocLanguages (nella finestra di dialogo delle informazioni sul progetto) relativo alla documentazione della libreria.
Risultato:
Assicurati che la directory di installazione di CODESYS il file eseguibile
libdoc.exe
contiene (directory...\DocScripting\3.5.xx.0
\).Scarica il convertitore wkhtmltox a 32 bit con versione 0.12.5 o precedente da https://wkhtmltopdf.org/downloads.html giù. Decomprimi il file
wkhtmltox.dll
e incollali CODESYS- Directory di installazione in...\DocScripting\3.5.xx.0\bin
uno.Importante
Da quando
wkhtmltox.dll
non supporta più le immagini per impostazione predefinita nella versione 0.12.6 e successive, devi utilizzare la versione 0.12.5 o precedente.Crea la variabile di sistema
LIBDOC_CODESYS
in Windows. Imposta il valore sul percorso del file diCODESYS.exe
. Assicurati di specificare il nome del percorso e il nome del profilo tra virgolette doppie.Risultato:
Salva, chiudi e riapri il progetto della libreria.
Clic
.La libreria compilata verrà installata nel progetto che utilizza questa cinematica.
Utilizzo della libreria in un progetto (CustomKinematics_Implementation.project)
Il progetto dimostra come utilizzare e controllare la cinematica creata nella sezione precedente facendo jogging o comandando un movimento.
Creare un CODESYS progetto standard con il CODESYS SoftMotion Win controllore.
Apri il Gestore della libreria e installa la libreria
CustomKinematics.compiled-library
(creato nella sezione precedente) contenente la cinematica Gantry3C. Aggiungi la libreria al Gestore della libreria.Aggiungere un oggetto di gruppo asse e selezionare il KinCustom.Gantry3C cinematica.
Risultato:
Aggiungi 4 assi virtuali al Pool di assi generali SoftMotion pool di assi nell'albero dei dispositivi. (DriveX, Y, Z e C)
Aprire il configuratore del gruppo di assi. Nel Mappatura sugli assi sezione, mappare gli assi nei rispettivi campi.
Risultato:
Il programma
Prg_Visu
è il programma principale che controlla il gruppo di assi. Quando l'applicazione viene avviata,Prg_Visu
accende il gruppo di assi e lo abilita. Inoltre, richiama tutti i blocchi funzione necessari per controllare il gruppo di assi (jogging, movimenti lineari e PTP). Tutti questi movimenti possono essere controllati dalla visualizzazione allegata.Risultato:
Blocco funzione:
Jog
: Questo FB combina il jogging nello spazio degli assi e nello spazio cartesiano. Utilizza due istanze diSMC_GroupJog2
. Uno è per lo spazio degli assi e l'altro è per lo spazio cartesiano. Questo blocco funzione può essere utilizzato con i modelli di visualizzazione V_Posizione_Robot_assi E V_RobotPosition_carrello_Jog per spostare qualsiasi cinematica nello spazio cartesiano e negli assi.Risultato:
FB SMC_TRAFOF_Gantry3C
: Questo blocco funzione trasforma i valori dell'asse di ingresso di una cinematica Gantry3C nei rispettivi valori TCP. Inoltre, i valori degli assi sono normalizzati in modo che possano essere utilizzati con il modello di visualizzazioneTRAFOF_Gantry3C_YZ
per visualizzare i movimenti della cinematica.Risultato:
Compila ed esegui l'applicazione. Apri la visualizzazione. Puoi muovere il robot nello spazio degli assi così come nello spazio cartesiano. Sono inoltre disponibili modelli di visualizzazione per comandare un movimento lineare o PTP.
Risultato:
Suggerimento
L'esempio qui descritto discute gli assi di posizionamento e orientamento in un blocco funzione comune. Molte cinematiche possono comprendere due cinematiche parziali disaccoppiate: una cinematica di posizionamento (delta, gantry, ecc.) e una cinematica di orientamento (strumenti come asse C, polso2, polso3, ecc.). Entrambe le cinematiche sono collegate tra loro nel "punto di flangia", il TCP della cinematica di posizionamento. La cinematica di orientamento è caratterizzata dal fatto di poter calcolare il vettore dal punto di flangia al TCP della cinematica accoppiata. Il calcolo viene effettuato utilizzando solo l'orientamento di questo TCP (cioè indipendente dalla cinematica di posizionamento o indipendente dall'orientamento del punto di flangia). La cinematica di posizionamento a sua volta deve essere in grado di determinare le sue posizioni dell'asse solo dalla posizione del punto di flangia. Non deve dipendere dall'orientamento del punto della flangia.
In questo caso, puoi ricorrere a interfacce come ISMPositionKinematics
O ISMOrientationKinematics
. Per implementare queste interfacce, definire un blocco funzione da implementare ISMPositionKinematics
e un altro blocco funzione da implementare ISMOrientationKinematics
. Infine, definire un blocco funzione che estenda il blocco funzione Kin_Coupled
(da SM3_Transformation
) con i blocchi funzione precedentemente definiti come ingressi.
Per ulteriori informazioni, vedere: Creazione di una cinematica personalizzata